package cn.qzit.sf;

/**
 * ClassName : cn.qzit.sf.Debugger
 * Desc :
 *     ☐ 普通断点
 *     ☐ 条件断点
 *     ☐ 方法断点
 *     ☐ 异常断点
 *     ☐ 属性断点
 *     ☐ Stream断点
 *
 * @author : LINPQ
 * @date : 2022/6/11 14:11
 */
public class Debugger {

    public static void main(String[] args) {
        fun5();
    }

    /**
     * @Author linpq
     * @Description //☐ 普通断点
     * @Date 14:12 2022/6/11
     * @Param []
     * @return void
     * @question: 请问不修改任何代码的情况下，得出c等于多少
     **/
    public static void fun1(){
        int a = 5;
        int b = 6;
        int c = a + b * 5;
        int d = c - a;
    }

    /**
     * @Author linpq
     * @Description //☐ 条件断点
     * @Date 14:13 2022/6/11
     * @Param []
     * @return void
     * @question: 1、请问不修改任何代码的情况下，当 i = 5 时候 s 等于多少
     *            2、请问 i 为多少的时候 s 大于 1000；
     **/
    public static void  fun2(){
        int x = 500;
        int sum = 0;
        for (int i = 0; i < x; i++) {
            sum += i;
        }
    }

    /**
     * @Author linpq
     * @Description //☐ 方法断点
     * @Date 14:16 2022/6/11
     * @Param []
     * @return void
     * @question: 请问，如何才能自带一开始断点整个方法
     **/
    public static void fun3(){
        int a = 5;
        int b = 6;
        int c = a + b * 5;
        int d = c - a;
    }

    /**
     * @Author linpq
     * @Description //☐ 异常断点
     * @Date 14:17 2022/6/11
     * @Param []
     * @return void
     * @question: 请问如何自动断点到 出现异常之前的代码行
     **/
    public static void fun4(){
        User u1 = null;
        u1.setName("111");
    }

    /**
     * @Author linpq
     * @Description //☐ 属性断点
     * @Date 14:19 2022/6/11
     * @Param []
     * @return void
     * @question 如何监测某个属性的变化时候调用的方法
     **/
    public static void fun5(){
        User u1 = new User("WWWW");
        u1.setName("111");
        u1.setName1("111");
    }
}
